<?php if (!defined('__FW_RUN__')) exit('not found');
/**
 * conf.define.php
 *
 * 전역 상수를 관리합니다.
 *
 * @package     framework
 * @subpackage  conf
 * @author      Platform Team
 */

$f = FW_DIR_PROJECT . '/conf/conf.define.php';
if (is_file($f)) {
    include $f;
}

$f = FW_DIR_MIDDLEWORK . '/conf/conf.define.php';
if (FW_MIDDLEWORK_USE && is_file($f)) {
    include $f;
}

/**
 * 클래스 접두어 문자
 */
define('FW_CLASS_PREFIX_FRAMEWORK_CORE', 'core');
define('FW_CLASS_PREFIX_FRAMEWORK_EXCEPTION', 'exception');
define('FW_CLASS_PREFIX_FRAMEWORK_UTIL', 'util');

define('FW_CLASS_PREFIX_APP', 'app');
define('FW_CLASS_PREFIX_CONT', 'cont');
define('FW_CLASS_PREFIX_HOOK', 'hook');
define('FW_CLASS_PREFIX_LIB', 'lib');
define('FW_CLASS_PREFIX_MODEL', 'model');

/**
 * 모델
 */
define('FW_MODEL_RESULT_ROW', 'row');
define('FW_MODEL_RESULT_ROWS', 'rows');
define('FW_MODEL_RESULT_EXEC', 'exec');
define('FW_MODEL_RESULT_EXEC_DISABLED_PASS', 'disabled_except');

define('FW_MODEL_ORDER_BY_ASC', 'asc');
define('FW_MODEL_ORDER_BY_DESC', 'desc');

/**
 * 예외처리키
 */
define('FW_EXCEPTION_ROUTER', 'Router');
define('FW_EXCEPTION_VIEW', 'View');
define('FW_EXCEPTION_SESSION', 'Session');

/**
 * 라우터 타입
 */
if (!defined('FW_ROUTE_MAP_TYPE')) {
    define('FW_ROUTE_MAP_TYPE', 'query');
}

/**
 * 기본 컨트롤러 명
 */
if (!defined('FW_ROUTE_DEFAULT_CONTROLLER')) {
    define('FW_ROUTE_DEFAULT_CONTROLLER', 'index');
}

/**
 * 기본 메소드 명
 */
if (!defined('FW_ROUTE_DEFAULT_METHOD')) {
    define('FW_ROUTE_DEFAULT_METHOD', 'index');
}

/**
 * XSS 필터 사용여부
 */
if (!defined('FW_XSS_FILTER_USE')) {
    define('FW_XSS_FILTER_USE', false);
}

/**
 * 뷰 확장자
 */
if (!defined('FW_VIEW_EXT')) {
    define('FW_VIEW_EXT', 'tpl');
}

/**
 * JS 확장자
 */
if (!defined('FW_JS_EXT')) {
    define('FW_JS_EXT', 'js');
}

/**
 * CSS 확장자
 */
if (!defined('FW_CSS_EXT')) {
    define('FW_CSS_EXT', 'css');
}

/**
 * 언어팩 사용여부
 */
if (!defined('FW_LANGUAGE_ENABLE')) {
    define('FW_LANGUAGE_ENABLE', true);
}

/**
 * JS 용 언어팩 사용여부
 */
if (!defined('FW_LANGUAGE_JS_USE')) {
    define('FW_LANGUAGE_JS_USE', false);
}

/**
 * 옵티마이져 핸들러명 - 'file' or 'memcache'
 */
if (!defined('FW_OPTIMIZER_HANDLER')) {
    define('FW_OPTIMIZER_HANDLER', 'file');
}

/**
 * 옵티마이져 멤캐시 호스트 주소 - 타입이 memcache 일 경우 유효
 */
if (!defined('FW_OPTIMIZER_MEMCACHE_HOST')) {
    define('FW_OPTIMIZER_MEMCACHE_HOST', 'localhost');
}

/**
 * 옵티마이져 멤캐시 포트 주소 - 타입이 memcache 일 경우 유효
 */
if (!defined('FW_OPTIMIZER_MEMCACHE_PORT')) {
    define('FW_OPTIMIZER_MEMCACHE_PORT', 11211);
}

/**
 * 옵티마이져 파일 캐시 여부
 */
if (!defined('FW_OPTIMIZER_FILE_CACHE_USE')) {
    define('FW_OPTIMIZER_FILE_CACHE_USE', true);
}

/**
 * 옵티마이져 JS 출력 순서
 * O : 외부 JS 파일
 * I : 내부 JS 파일 (resource 디렉토리등에 포함된 파일들)
 * E : 문서 내 포함되는 스크립트 소스 (writeJS, phpJS 등)
 */
if (!defined('FW_OPTIMIZER_ORDER_JS')) {
    define('FW_OPTIMIZER_ORDER_JS', 'OIE');
}

/**
 * 옵티마이져 CSS 출력 순서
 * O : 외부 CSS 파일
 * I : 내부 CSS 파일 (resource 디렉토리등에 포함된 파일들)
 * E : 문서 내 포함되는 스크립트 소스 (writeCSS, phpCSS 등)
 */
if (!defined('FW_OPTIMIZER_ORDER_CSS')) {
    define('FW_OPTIMIZER_ORDER_CSS', 'OIE');
}

/**
 * 옵티마이져 캐시 디렉토리 분리 깊이 (최대 : 3)
 * 할당된 값이 숫자가 아닌 경우는 0 으로 세팅됨. 음수도 마찬가지.
 */
if (!defined('FW_OPTIMIZER_CACHE_DIR_LEVEL')) {
    define('FW_OPTIMIZER_CACHE_DIR_LEVEL', 2);
}

/**
 * 캐릭터셋
 */
if (!defined('FW_CHARSET')) {
    define('FW_CHARSET', 'utf-8');
}

/**
 * 캐릭터셋에 따른 문자 바이트 수
 */
if (strtolower(FW_CHARSET) == 'utf-8') {
    define('FW_BYTE_PER_CHAR', 3);
} else {
    define('FW_BYTE_PER_CHAR', 2);
}

/**
 * P3P 헤더 삽입 여부
 * @link http://wiki.simplexi.com:8080/pages/viewpage.action?pageId=63178385
 */
if (!defined('FW_P3P_HEADER_ENABLED')) {
    define('FW_P3P_HEADER_ENABLED', false);
}